Checking the Conformance of Java Classes Against Algebraic Specifications
نویسندگان
چکیده
We present and evaluate an approach for the run-time conformance checking of Java classes against property-driven algebraic specifications. Our proposal consists in determining, at run-time, whether the classes subject to analysis behave as required by the specification. The key idea is to reduce the conformance checking problem to the runtime monitoring of contract-annotated classes, a process supported today by several runtime assertion-checking tools. Our approach comprises a rather conventional specification language, a simple language to map specifications into Java types, and a method to automatically generate monitorable classes from specifications, allowing for a simple, but effective, runtime monitoring of both the specified classes and their clients.
منابع مشابه
Runtime Verification for Generic Classes with ConGu 2
Even though generics became quite popular in mainstream objectoriented (OO) languages, approaches for checking at runtime the conformance of such programs against formal specifications still lack appropriate support. In order to overcome this limitation within CONGU, a tool-based approach we have been developing to support runtime conformance checking of Java programs against algebraic specific...
متن کاملBridging the Gap between Algebraic Specification and Object-Oriented Generic Programming
Although sophisticated languages have been proposed for defining algebraic specifications, the relationships with OO implementations that have been established so far are restricted to very simple cases. Key aspects at the specification side s.a. genericity and subsorting are not covered, although they have obvious counterparts in OO programming that are extremely useful and popular. In this pa...
متن کاملDiscovering Algebraic Specifications for Java Classes ; CU-CS-985-04
Modern programs make extensive use of reusable software libraries. For example, a study of a number of large Java applications shows that between 17% and 30% of the classes in those applications use the container classes from the java.util package. Given this extensive code reuse in Java programs, it is important for the reusable interfaces to have clear and unambiguous documentation. Unfortuna...
متن کاملDiscovering Algebraic Specifications for Java Classes
Modern programs make extensive use of reusable software libraries. For example, a study of a number of large Java applications shows that between 17% and 30% of the classes in those applications use the container classes from the java.util package. Given this extensive code reuse in Java programs, it is important for the reusable interfaces to have clear and unambiguous documentation. Unfortuna...
متن کاملOffline Model-based Testing and Runtime Monitoring of the Sensor Voting Module
Formal specifications are widely used in the development of safety critical systems, as the Sensor Voting Module of the Landing Gear System. However, the conformance relationship between the formal specification and the concrete implementation must be checked. In this paper, we show a technique to formally link a Java class with its Abstract State Machine formal specification, and two approache...
متن کامل